package com.unittec.zk.provider.excel.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author wuxinwei
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelCell {

    /**
     * 列索引
     *
     * @return
     */
    int index()

    default -1;

    /**
     * 标题
     *
     * @return
     */
    String title()

    default "";

    /**
     * 日期格式 for example {"yyy/MM/dd", "yyyy-MM-dd HH:mm:ss"}
     *
     * @return
     */
    String[] dateFormats() default {};

    /**
     * 数据字典, 暂未实现
     *
     * @return
     */
    String dict()

    default "";

    /**
     * 手动格式化字典 for example 1 {"1:男", "2:女"}
     *
     * @return
     */
    String[] format() default {};

    /**
     * 是否必填
     *
     * @return
     */
    boolean require()

    default false;

    /**
     * 列表
     *
     * @return
     */
    String[] matches() default {};

    /**
     * 下拉框名称 为空 就不是下拉框
     *
     * @return
     */
    String dropDownListName() default "";

    /**
     * 下拉框数据来源是否是字典
     *
     * @return
     */
    boolean dropDownListDataSourceIsDic() default false;

    /**
     * 导出时，采用简单模板, 数字小的排在前面
     */
    int score() default 1000;

    /**
     * 是否是父对象
     *
     * @return
     */
    boolean isParent() default false;
}
